package adapter;

import java.rmi.*;
import java.util.List;

import server.ejb.beans.Bahn;
import server.ejb.beans.Fluggesellschaft;
import server.ejb.beans.Flugzeugtyp;
import server.ejb.beans.Flugzeug;
import server.ejb.beans.Gebuehr;
import server.ejb.beans.Parkposition;
import server.ejb.beans.Lotse;

public interface IAdapter extends Remote
{
	public void registerClientCallback(IClientCallback client) throws RemoteException;
	public void unregisterClientCallback(IClientCallback client) throws RemoteException;
	public void notifyObservers() throws RemoteException;
	
	public void createFlugzeug(String bezeichnung, Flugzeugtyp flugzeugtyp, Fluggesellschaft fluggesellschaft) throws RemoteException;
	public void createFlugzeugTyp(String bezeichnung, Gebuehr gebuehr) throws RemoteException;
	public void createFluggeselschaft(String name) throws RemoteException;
	public void createLandeStartbahn() throws RemoteException;
	public void createParkposition() throws RemoteException;
	
	public void setSollZeit(String zeit) throws RemoteException;
	public void setSollDatum(String datum) throws RemoteException;
	public void setIstZeit(String zeit) throws RemoteException;
	public void setIstDatum(String datum) throws RemoteException;
	
 	public void setLandebahnStatus(int ID, boolean besetzt) throws RemoteException;	
 	public void setParkpositionStatus(int ID, boolean besetzt) throws RemoteException;
	
	public Flugzeug getFlugzeug(int ID) throws RemoteException;
	public Flugzeugtyp getFlugzeugtyp(int ID) throws RemoteException;
	public Fluggesellschaft getFluggeselschaft(int ID) throws RemoteException;
	public Bahn getStartLangebahn(int ID) throws RemoteException;
	public Parkposition getParkposition(int ID) throws RemoteException;
	
	public List<Lotse> getLotsen() throws RemoteException;
	public List<Flugzeug> getFlugzeuge() throws RemoteException;
	public List<Flugzeugtyp> getFlugzeugtypen() throws RemoteException;
	public List<Fluggesellschaft> getFluggeselschaften() throws RemoteException;
	public List<Bahn> getLandeStartbahnen() throws RemoteException;
	public List<Parkposition> getParkpositionen() throws RemoteException;
}